package gshutdown;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import shutdown.ShutDown;

public class CadrePrincipal extends JFrame
{
    private final static String messageOK = "OK";
    private final static String messageBadUrl = " defaut url";
    private final static String messageNoResponse = "pas de reponse";
    private ShutDown myShutDown = new ShutDown();
    private JPanel contentPane;
    private JLabel statusBar = new JLabel();
    private JTextField jTextFieldIP = new JTextField();
    private JTextField jTextFieldPort = new JTextField();
    private JLabel jLabel1 = new JLabel();
    private JLabel jLabel2 = new JLabel();
    private JButton jButton1 = new JButton();
    private JRadioButton jRadioButtonAcces = new JRadioButton();
    private JRadioButton jRadioButtonAffichage = new JRadioButton();
    private ButtonGroup buttonGroup1 = new ButtonGroup();
    private JLabel jLabelResult = new JLabel();

    //Construire le cadre
    public CadrePrincipal() {
	enableEvents(AWTEvent.WINDOW_EVENT_MASK);
	try {
	    jbInit();
	}
	catch(Exception e) {
	    e.printStackTrace();
	}
    }
    //Initialiser le composant
    private void jbInit() throws Exception  {
	//setIconImage(Toolkit.getDefaultToolkit().createImage(CadrePrincipal.class.getResource("[Votre icône]")));
	contentPane = (JPanel) this.getContentPane();
	contentPane.setLayout(null);
	this.setResizable(false);
	this.setSize(new Dimension(310, 135));
	this.setTitle("ShutDown");
	statusBar.setText(" ");
	statusBar.setBounds(new Rectangle(0, 283, 400, 17));
	jTextFieldIP.setBounds(new Rectangle(93, 52, 86, 21));
	jTextFieldIP.addFocusListener(new java.awt.event.FocusAdapter() {
	    public void focusGained(FocusEvent e) {
		jTextFieldIP_focusGained(e);
	    }
	});
	jTextFieldPort.setBounds(new Rectangle(245, 52, 48, 21));
	jTextFieldPort.addFocusListener(new java.awt.event.FocusAdapter() {
	    public void focusGained(FocusEvent e) {
		jTextFieldPort_focusGained(e);
	    }
	});
	jLabel1.setText("Adresse IP");
	jLabel1.setBounds(new Rectangle(15, 53, 77, 17));
	jLabel2.setText("Port");
	jLabel2.setBounds(new Rectangle(209, 53, 34, 17));
	jButton1.setBounds(new Rectangle(200, 92, 95, 27));
	jButton1.setText("Shutdown");
	jButton1.addActionListener(new java.awt.event.ActionListener() {
	    public void actionPerformed(ActionEvent e) {
		jButton1_actionPerformed(e);
	    }
	});
	jRadioButtonAcces.setText("Acces parking");
	jRadioButtonAcces.setBounds(new Rectangle(23, 11, 103, 25));
	jRadioButtonAffichage.setEnabled(false);
	jRadioButtonAffichage.setText("Panneau affichage");
	jRadioButtonAffichage.setBounds(new Rectangle(166, 11, 133, 25));
	contentPane.setMinimumSize(new Dimension(320, 135));
	contentPane.setPreferredSize(new Dimension(310, 135));
	jLabelResult.setBorder(BorderFactory.createLoweredBevelBorder());
	jLabelResult.setBounds(new Rectangle(13, 93, 168, 25));
	contentPane.add(statusBar, null);
	contentPane.add(jLabel1, null);
	contentPane.add(jLabel2, null);
	contentPane.add(jRadioButtonAffichage, null);
	contentPane.add(jTextFieldPort, null);
	contentPane.add(jRadioButtonAcces, null);
	contentPane.add(jButton1, null);
	contentPane.add(jLabelResult, null);
	contentPane.add(jTextFieldIP, null);
	buttonGroup1.add(jRadioButtonAcces);
	buttonGroup1.add(jRadioButtonAffichage);
    }

    //Supplanté, ainsi nous pouvons sortir quand la fenêtre est fermée
    protected void processWindowEvent(WindowEvent e)
    {
	super.processWindowEvent(e);
	if (e.getID() == WindowEvent.WINDOW_CLOSING) {
	    System.exit(0);
	}
    }

    void jButton1_actionPerformed(ActionEvent e)
    {
	String url = "http://" + jTextFieldIP.getText() + ":" + jTextFieldPort.getText();

	if (myShutDown.setURL(url))
	{
	    if (jRadioButtonAcces.isSelected())
	    {
		if (myShutDown.shutDownApp(0))
		{
		    jLabelResult.setText(messageOK);
		}
		else jLabelResult.setText(messageNoResponse);
	    }
	    else if (jRadioButtonAffichage.isSelected())
	    {
		if (myShutDown.shutDownApp(1))
		{
		    jLabelResult.setText(messageOK);
		}
		else jLabelResult.setText(messageNoResponse);
	    }
	}
	else jLabelResult.setText(messageBadUrl);
    }

    void jTextFieldIP_focusGained(FocusEvent e)
    {
	 jLabelResult.setText("");
    }

    void jTextFieldPort_focusGained(FocusEvent e)
    {
	 jLabelResult.setText("");
    }

}